About Jonathan Snook

I share tips from front-end work to hardcore server-side challenges, I've co-authored two acclaimed books: Accelerated DOM Scripting with Ajax, APIs, and Libraries, and The Art and Science of CSS.

The RSS's url is : https://snook.ca/jonathan/index.rdf

Please copy to your reader or subscribe it with :

Preview of RSS feed of Jonathan Snook

Big Boxes

2024-05-06 08:34:43

Thirty years ago, I used to work at Toys’R’Us. I really enjoyed that job and sometimes consider returning to a life of stocking shelves. It’s become a bit cliché at this point to hear another tech bro wax on about how they’re going to quit and open a coffee shop, start woodworking, or become a janitor somewhere. This post isn’t that post.

About once a week, an 18-wheeler would back itself up to the truck bay, and then two or three of us would unload every box on that truck as quickly as we could onto a bunch of skids—usually in about 3 hours or so. The store was divided into three sections: the very memorable A, B, and C sections. Everything coming off the truck would be quickly sorted into piles for each section. Work there for a little while and the size and shape of boxes become easily identifiable without even needing to look at labels.

From there, all of that inventory needed to be moved either to the floor (ie: onto store shelves), overstock (the piles of inventory packed 4–6ft high on the very top shelf), or thrown into the back, aka the 500s (the ancient term used to refer to the storage hidden from customers).

I used a specific approach of grabbing the largest boxes from the bay and putting those away first. This created the illusion of faster progress—I could visually see the piles shrink rapidly until all that was left was a small pile of tiny boxes. Selfishly, this created the illusion to management, too, that I was working faster.

To this day, I still do the tasks that look like they have the biggest impact.

When I do the dishes, I do the plates and bowls first, then the glasses, and then the utensils. Doing the big stuff clears off the counter and makes it look like I’m getting the dishes done more quickly. (It’s not an unheard of thing for me to “let the utensils soak”, to be dealt with later.)

When working on an app, I’ll build out the bulk of the front-end before I jump on the backend. I’ll get the easier data types editing and saving before I work on the more complicated form interactions.

They say the last 20% takes 80% of the time and I chalk it up to the big boxes and small boxes. Putting away all the big boxes might look like I did 80% of the work but it’s a visual trick. In reality, there are a lot of small boxes that still need to be put away.

Sure, I might be able to get something that a client can see and interact with within a day or two but the reality is that a quality product means putting away all of the small boxes. That takes time, time that might visually look less impactful but in the end is just as important as everything else.


Reply via email

Anonymity in Blogging

2024-03-31 22:40:14

I had been considering whether to start up a personal newsletter. I subscribe to friends’ letters, in which they describe the various goings on in their life—family, house projects, travel, etc. As an email, it feels more intimate.

Couldn’t what I say in an email also be said on the blog? Which led me to consider a number of things…

With social media, we can see who follows us. Sure, there’s no guarantee our posts will make their way into their algorithm. Maybe they’re not online this week. Yet, we can see their names and know that they have a likelihood of seeing them.

A newsletter is quite similar. There’s a subscriber list and we can see every name that’s on it. Sure, they can be busy and archive it without reading it. The email can get caught in a spam filter. Yet, people want to fill their already busy inboxes with what you have to say and are likely to read it.

For anything impersonal, like brand marketing, promotions, or sales, it makes sense and is highly advantageous to know who your audience is. When I sold a book, it was useful to be able to market to those who bought the book to buy the workshop. It was useful to market to those to come to a conference.

Blogging feels detached from the audience. I can write knowing that nobody or anybody might be reading it. I can write for me and hope the words resonate. And having taken analytics off, I have absolutely no idea if anything resonates. It’s like putting artwork up in a museum. Each person gets to enjoy it in their own time and in their own way and the artist is likely never to know. Unless you say something to me, I have no idea if you’ve read these very words. [People would approach me at conferences and mention something going on in my life and I would briefly think, “How do you know about that?!” Only to remember that I had written about it publicly.]

What’s likely evident based on the mere title of this post is the conclusion that blogging is to an anonymous audience. I can guess who my audience is but I will never truly know. Not only will I not know who my audience is when I initially post, I won’t know who my audience might be at some point down the road.

I might still start up a newsletter but in the meantime and until then, I’m enjoying the process of writing to an unknown audience.


Reply via email

Best of the Best

2024-03-25 02:21:36

After finishing off the challenge of eating at 50 of the World’s 50 Best Restaurants before I turned 50, I turned to a couple smaller quests—one of which is to go to all of the Best of the Best restaurants.

A few years back, 50 Best decided that once a restaurant hits the top of the list, it is no longer allowed to compete and is added to the Best of the Best list.

There’s currently nine restaurants on the list, one of which—El Bulli—closed down years ago. I’m sad that I never got the opportunity to go but I have been to Enigma and Disfrutar, both of which have close connections to El Bulli and helps me feel a bit better.

Of the eight left, I went to Eleven Madison Park, Geranium, Noma, and El Celler de Can Roca as part of the 50 Before 50.

This left four other restaurants: The French Laundry, The Fat Duck, Mirazur, and Osteria Francescana.

I went to The French Laundry while tackling other California-based restaurants pre-pandemic. I did The Fat Duck after going to Ikoyi but before hitting up the final restaurant on the 50 quest. That meant that upon completing that, I only had two restaurants left and that seemed like an easy task to complete.

The expediency in completing this side quest, as it were, wasn’t important like it was with the main adventure. I booked Mirazur last summer as part of a French adventure, including Nice and Monaco. Then in the fall, I booked the last one for this March: Osteria Francescana.

My review of Osteria Francescana should probably be its own post but I do have some thoughts in relation to how all of these restaurants compare, not only to each other but to fine dining around the world.

The restaurants and chefs have become celebrities as a result of their dedication to excellence and experience. These restaurants are known for having been innovative and trendsetters. My experiences at each of these restaurants demonstrated that dedication to craft and were all wonderful food adventures.

And yet—and here is my privilege showing—some of the restaurants felt too formulaic and therefore unexceptional. The food is amazing, yes. There’s no doubt about that. Each dish is easily a 9 or 10 out of 10. The service is meticulous and impeccable. Truly a world class experience. But with some places, like Osteria Francescana, there was an understatement, a lack of pageantry and theatre, that left it as just an amazing dinner and nothing more.

El Celler de Can Roca felt the most ambitious, with an abundance of courses, creativity, and visits from each of the Roca brothers, making the entire experience feel very personal.

The Fat Duck felt the most creative including a wine tasting while listening to music and lights turned red, or putting headphones on to listen to sounds of the seaside while eating a dish.

I mentioned to The French Laundry that it was Kitt’s birthday, and they personalized a bottle of wine and personalized her menu. That was a very nice touch that I haven’t seen executed nearly as well anywhere else. (At Blue Hill, I got a dessert for my birthday.)

Ultimately, you’re unlikely to go wrong with any of the restaurants on the Best of the Best list. (With maybe Eleven Madison Park being a less than stellar exception, after my last visit.)

With the visit to Osteria Francescana in the bag, this challenge is now done. What’s next? Every 3-star Michelin awarded restaurant in the United States. Time to make some reservations.


Reply via email

Shifting Identities

2024-03-05 02:34:35

In a twist on my younger self, I saw a joke recently about what you’d tell your eight year old self. Which reminded me of my mom and her collection of bells. Anybody who knew my mom knew she collected bells and if they wanted to get her a present, it would be a bell. My mom’s collection was getting out of control and she soon told people to stop.

We often associate topics or things or ideas to specific people and that becomes part of their personal brand identity. “Oh, you’re the person who likes bells” (or owls or whatever). Many in my personal life currently associate me with whisky or cocktails or fancy restaurants. (That last one is amusing if you knew how often I eat at McDonald’s.) And come birthday or Christmas time, it’s safe to say that I can expect something within those topics of interest.

In the web industry, I often shifted my topics of interest and as I talked about those new interests, I would gain a following within that new sphere. Over more than a decade, some people knew me as a designer, some knew me as a JavaScript developer, some as a CSS developer, some as a PHP developer, and maybe some even knew me as an ASP or ColdFusion developer.

Getting pigeon-holed as one particular thing often made me uncomfortable because I didn’t feel seen. My skill set is much broader and being called “just” anything felt constricting. Shifting my focus publicly reflected my different personal interests while ensuring an expanding broader audience (and maybe bring some people along for the ride, too).

When I went to work at Abstract, I had already started to step out of the limelight and wanted to avoid management and mentoring. I really just wanted a to-do list and quietly contribute. And yet, I was getting pigeon-holed into that mentorship and guidance role. Come employee review time, the one thing my co-workers requested was more of my opinion on architectural things.

There are benefits to being known for one thing. In our industry, some focus on just Node or Ruby or CSS or Design Systems. And as long as those topics are relevant, and you’re still enjoying it, the work can pour in. (Obvious caveats around marketing and economies, and so on.) I don’t doubt that my being known for one thing helped my employment.

Just be U

I’ve always enjoyed being more of a generalist while having a deep understanding of a number of topics—something I referred to as being U shaped instead of T shaped.

Know it all, or know one thing. Lead an industry in the limelight, or persist in a quiet career. Burn the candle at both ends, or slow and steady. Any and all are completely okay. Ultimately, there’s no right or wrong way to have a career.

While I enjoy one thing today, who knows what might capture my interest tomorrow… (Cracks open Xcode)


Reply via email

Taking a risk

2024-02-24 03:32:27

Back in 1999, I was working as a manager in a retail computer store selling and building PC hardware and software. On the side, my hobby was playing with the web—a nascent technology that had only been around for a few years and becoming increasingly popular. It took me awhile to clue in that there were people making careers with this thing that I was doing for fun. A light bulb went off and I realized that this was something that I, too, wanted to do.

Switching from something that was a hobby into a career meant I needed to figure out how to get my foot in the door. I applied at a bunch of companies but was not getting asked for interviews. I considered going to college to get a degree but it’d cost thousands of dollars I didn’t have.

Then I applied for a one week contract at a web agency. I got the call the week prior. That’s not a lot of notice. I took a chance and told the owners of the store I wouldn’t be in the following week.

I did my contract and got some experience under my belt.

But, as you might imagine, my rather short-term notice didn’t go over well at the computer store and I was demoted. Understandable and I didn’t argue it.

But but, my performance during that one week contract was enough for them to reach out and offer me a full time job.

Sometimes we need to take risks and that risk paid off for me, getting into a career doing something that I enjoyed. The rest, as they say, is history.


Reply via email

My Younger Self

2024-02-03 10:23:52

There’s an exercise where you ask yourself what you’d tell your younger self if you ever had the chance. My answer has been and continues to be that I wouldn’t tell my younger self anything.

It would be nice to learn the hard lessons earlier but who’s to say I’d listen to my future self any better than I listened to my past self? Who’s to say there wouldn’t be other lessons or mistakes made as a result of the alternative universe I’d be in?

There was a Reddit thread on his topic and one person said they’d tell their younger self to buy bitcoin and sell when it hits $60k. But I had to laugh when somebody replied to add that they shouldn’t get on any submarines. Because wouldn’t that be a hilarious twist worthy of an Alanis Morissette song? You get the financial success that you promised your younger self but a year later, you die because your newfound riches afforded you an opportunity that seemed too good to pass up.

When I look over my life, there are so many decisions that could have seemingly sent my life into a better direction but the fact remains that those “what ifs” create completely unknown universes where the butterfly effects may have negated all of the good things that have happened in my life.

What’s good? What’s bad? Who knows.

So if I ever do find myself face to face with my younger self through some miracle of science or magic, I think I might just say, “you’re in for a wild ride.”


Reply via email

Lenticular Photos

2024-01-31 04:49:48

Growing up, I always loved those lenticular cards—ones that had two photos that transitioned as you rotated from side to side. Maybe it was a hockey player taking a shot or a superhero transforming from mild mannered day job to caped crusader.

Since Apple released Live Photos, I’ve always felt like they could be used to create a similar effect and yet, no photo app that I’ve seen has implemented it, from what I’ve come across.

Building an entire app just to get one feature that I want is a bit silly. Instead, I built a prototype to see whether the idea would work.

Mobile Safari doesn’t support live photos natively, so I exported them as three second videos. Then I used the DeviceOrientation API to detect rotation over one of the axes to scrub the video forwards and backwards.

It’s a very rudimentary prototype but I’m surprisingly pleased by how well the concept turned out. I’ve only tested it on iPhone and iPad. Theoretically, it’ll work on Android but I haven’t tested it.

Things I learned

The DeviceOrientation API requires authentication through an action. Perhaps annoyingly, Safari remembers this authentication in the web cache. Therefore, to clear the settings, I had to go into Safari settings and remove the cache for the web site. It was easier to test in a private browser window and close/reopen the window each time I tested the authentication workflow.

I ran into some performance issues where it was really jerky. My assumption is that the video would be playing but constantly scrubbing on rotation. In the first version of the prototype, I had a default video specified but added the autoplay attribute to force the video to load. I just gave up and users have to specify a video to load first. When a video is loaded, I pause it right away to avoid the performance issue.

Crossing over the middle of forward/backward axis causes the value of the left/right axis to flip. I could account for this but I’m honestly too lazy. It’s just a prototype, after all.

Make it exist

I wish I could have it take actual live photos to play with. Instead, I’ve put the prototype out into the world in hopes that maybe one day, some photo platform will build this feature for me to enjoy. It’s either that or I get a job somewhere, work on this one feature, and then quit afterwards.

In the meantime, enjoy some “lenticular photos”!


Reply via email

No Analytics

2024-01-30 08:33:39

It was nice to see Rach talk about stripping out analytics. I stripped out my analytics years ago and while I thought I wrote about it, I can’t find where I did so. My apologies if I’m repeating myself. (I’m getting old.)

When I was deciding to strip them out, I was in the middle of looking at the performance of my sites and one of the things I realized was that much of the JavaScript I had running on my site, I no longer needed. I didn’t have a comment form or other web site widgets that required those scripts to be running.

Marketing

Were I still working to build an audience and promote myself, knowing what of my writing was resonating could be useful. Of course, what does resonate mean, exactly? Is it merely a level of engagement, good or bad? (There’s the ol’ saying that even bad publicity is good publicity.)

Even with analytics, nothing ever really tells you what worked, exactly.

Vanity

While I no longer felt a need to see whether an article was getting the traffic that indicated it was “good” or “bad”, it’s still a dopamine hit to see those numbers go up. If a tree falls in the forest, does anybody still blog? Is it worth blogging if nobody reads it?

I got over that vanity and really write for myself now. As such, it really doesn’t matter whether I have a consistent audience or not. I have an expression of my creativity and of myself and that is enough.

Community

One thing I miss is seeing who has linked back to me. If somebody writes a retort, it’d be useful to be able to see that. Then, I can possibly retort their retort. Or just bask in the glory and/or dumpster fire of a response.

This is one area where I miss having the analytics. I used to be able to do Google searches that would list sites that linked to mine but they removed that feature years ago.

Social media site searches are mediocre and now spread across multiple platforms making it difficult to search across those platforms.

Server-side

Which leads me to the server. There are server side tools that use logs to build analytics. This means that users aren’t burdened with another chunk of useless code that doesn’t help them. It also means that I’m not handing over a plethora of your data to a third party.

You win

In the end, laziness won out and I have no analytics on my site. I am very much okay with this. As they say, ignorance is bliss.


Reply via email